package com.xavier.dong.nio;

import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;

/**
 * @author XavierDong
 **/
public class NIOClient {

    public static void main(String[] args) {


        // 得到一个 网络通道
        try (SocketChannel socketChannel = SocketChannel.open()) {


            // 设置 非阻塞
            socketChannel.configureBlocking(false);

            // 提供服务端的 ip 和 端口
            InetSocketAddress inetSocketAddress = new InetSocketAddress("127.0.0.1", 6666);

            // 连接服务器
            if (!socketChannel.connect(inetSocketAddress)) {

                while (!socketChannel.finishConnect()) {
                    System.out.println("因为 连接 需要时间，客户端 不会阻塞，可以做其他事情 !");
                }

            }
            // ...如果 连接成功，就发送数据
            String str = "hello，新年 快乐！";

            // Wraps a byte array into a buffer.
            ByteBuffer byteBuffer = ByteBuffer.wrap(str.getBytes());

            // 发送数据 写入到 Channel 中去
            socketChannel.write(byteBuffer);

            System.in.read();


        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}
